package com.weishu.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.weishu.common.core.annotation.Excel;
import com.weishu.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 房源合同对象 t_cf_contract
 *
 * @author ruoyi
 * @date 2021-06-23
 */
public class TCfContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @Excel(name = "主键")
    private Long id;

    /** 出房合同编号（系统生成） */
    @Excel(name = "出房合同编号", readConverterExp = "系=统生成")
    private String cfContractNo;

    /** 外部合同编号（线下合同编号） */
    @Excel(name = "外部合同编号", readConverterExp = "线=下合同编号")
    private String outContractNo;

    /** 上一合同ID，续约合同的时候 */
    @Excel(name = "上一合同ID，续约合同的时候")
    private Long lastContractId;

    /** 上一合同编号 */
    @Excel(name = "上一合同编号")
    private String lastContractNo;

    /** 商户ID */
    @Excel(name = "商户ID")
    private Long businessId;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    /** 部门编号 */
    @Excel(name = "部门编号")
    private String deptNo;

    /** 房源ID */
    @Excel(name = "房源ID")
    private String roomId;

    /** 房源编号 */
    @Excel(name = "房源编号")
    private String roomCode;

    /** 承租房间(使用房源名称) */
    @Excel(name = "承租房间(使用房源名称)")
    private String roomName;

    /** 收房合同ID（没有收房合同可以录入出房合同） */
    @Excel(name = "收房合同ID", readConverterExp = "没=有收房合同可以录入出房合同")
    private Long sfContractId;

    /** 收房合同编号（没有收房合同可以录入出房合同） */
    @Excel(name = "收房合同编号", readConverterExp = "没=有收房合同可以录入出房合同")
    private String sfContractNo;

    /** 房产编号 */
    @Excel(name = "房产编号")
    private String houseId;

    /** 房产信息(考虑在房产表中增加house_name，楼栋，单元，门牌号和居室，然后带出) */
    @Excel(name = "房产信息(考虑在房产表中增加house_name，楼栋，单元，门牌号和居室，然后带出)")
    private String houseName;

    /** 小区名(使用楼盘名称) */
    @Excel(name = "小区名(使用楼盘名称)")
    private String premiseName;

    /** 居住人数(出房的时候录入) */
    @Excel(name = "居住人数(出房的时候录入)")
    private Long peopleNum;

    /** 租客ID */
    @Excel(name = "租客ID")
    private Long tenantId;

    /** 租客姓名 */
    @Excel(name = "租客姓名")
    private String tenantName;

    /** 租客手机号 */
    @Excel(name = "租客手机号")
    private String tenantPhone;

    /** 租客紧急联系号 */
    @Excel(name = "租客紧急联系号")
    private String tenantEmergencyPhone;

    /** 租客证件号 */
    @Excel(name = "租客证件号")
    private String tenantCardNo;

    /** 租客联系地址 */
    @Excel(name = "租客联系地址")
    private String tenantContactAddress;

    /** 租约期限开始日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租约期限开始日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 租约期限结束日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "租约期限结束日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 租约期限（月）,直接选择租约期限的时候，没有选，暂时不设定 */
    @Excel(name = "租约期限", readConverterExp = "月=")
    private Date signingCycle;

    /** 承租月租金 */
    @Excel(name = "承租月租金")
    private BigDecimal monthRent;

    /** 押金 */
    @Excel(name = "押金")
    private BigDecimal deposit;

    /** 收款方式(押X付Y的X) */
    @Excel(name = "收款方式(押X付Y的X)")
    private Integer depositType;

    /** 收款方式（押X付Y的Y） */
    @Excel(name = "收款方式", readConverterExp = "押=X付Y的Y")
    private Integer paymentType;

    /** 房租收取设置提前天数,天 */
    @Excel(name = "房租收取设置提前天数,天")
    private Long advanceDays;

    /** 房租收取设置固定日, 号（自然月） */
    @Excel(name = "房租收取设置固定日, 号", readConverterExp = "自=然月")
    private Long fixedDay;

    /** 租客承担付费(款项),各款项逗号拼接保存 */
    @Excel(name = "租客承担付费(款项),各款项逗号拼接保存")
    private String tenantExpenses;

    /** 承租类型,"0:整租（分散式）
     1:合租（分散式）
     2:单身公寓（集中式）" */
    @Excel(name = "承租类型")
    private Integer signType;

    /** 补充条款 */
    @Excel(name = "补充条款")
    private String supplementaryTerms;

    /** 有无特殊人群,0:无 1:有 */
    @Excel(name = "有无特殊人群,0:无 1:有")
    private Integer haveSpecialPeople;

    /** 是否房租分期,0:否 1:是 */
    @Excel(name = "是否房租分期,0:否 1:是")
    private Integer rentInstallmentFlg;

    /** 是否租约保理,0:否 1:是 */
    @Excel(name = "是否租约保理,0:否 1:是")
    private Integer zyblFlg;

    /** 合同状态,"1:草稿
     2:已提交
     3:已解约
     4:已结束
     9:作废" */
    @Excel(name = "合同状态")
    private Integer contractState;

    /** 续约状态,"0: 未续约
     1: 已续约" */
    @Excel(name = "续约状态")
    private Integer xuyueState;

    /** 冻结状态：0未冻结 1已冻结 */
    @Excel(name = "冻结状态：0未冻结 1已冻结")
    private Integer freezeStatus;

    /** 合同录入日期,暂定设置为提交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同录入日期,暂定设置为提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date inputDate;

    /** 合同签订日期, 暂定设置为提交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同签订日期, 暂定设置为提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingDate;

    /** 合同审核日期,暂定设置为提交日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同审核日期,暂定设置为提交日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date auditDate;

    /** 合同录入人,暂定设置为创建人 */
    @Excel(name = "合同录入人,暂定设置为创建人")
    private Long inputUserId;

    /** 出房人,暂定设置为创建人 */
    @Excel(name = "出房人,暂定设置为创建人")
    private Long cfUserId;

    /** 出房人姓名 */
    @Excel(name = "出房人姓名")
    private String cfUserName;

    /** 预留字段1 */
    @Excel(name = "预留字段1")
    private BigDecimal reserve1;

    /** 预留字段2 */
    @Excel(name = "预留字段2")
    private Long reserve2;

    /** 预留字段3 */
    @Excel(name = "预留字段3")
    private String reserve3;

    /** 预留字段4 */
    @Excel(name = "预留字段4")
    private String reserve4;

    /** 预留字段5 */
    @Excel(name = "预留字段5")
    private String reserve5;

    /** 删除标识,0:未删除，1:删除 */
    @Excel(name = "删除标识,0:未删除，1:删除")
    private Integer delFlg;

    /** 创建用户ID */
    @Excel(name = "创建用户ID")
    private Long createUserid;

    /** 更新用户ID */
    @Excel(name = "更新用户ID")
    private Long updateUserid;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCfContractNo(String cfContractNo)
    {
        this.cfContractNo = cfContractNo;
    }

    public String getCfContractNo()
    {
        return cfContractNo;
    }
    public void setOutContractNo(String outContractNo)
    {
        this.outContractNo = outContractNo;
    }

    public String getOutContractNo()
    {
        return outContractNo;
    }
    public void setLastContractId(Long lastContractId)
    {
        this.lastContractId = lastContractId;
    }

    public Long getLastContractId()
    {
        return lastContractId;
    }
    public void setLastContractNo(String lastContractNo)
    {
        this.lastContractNo = lastContractNo;
    }

    public String getLastContractNo()
    {
        return lastContractNo;
    }
    public void setBusinessId(Long businessId)
    {
        this.businessId = businessId;
    }

    public Long getBusinessId()
    {
        return businessId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDeptNo(String deptNo)
    {
        this.deptNo = deptNo;
    }

    public String getDeptNo()
    {
        return deptNo;
    }
    public void setRoomId(String roomId)
    {
        this.roomId = roomId;
    }

    public String getRoomId()
    {
        return roomId;
    }
    public void setRoomCode(String roomCode)
    {
        this.roomCode = roomCode;
    }

    public String getRoomCode()
    {
        return roomCode;
    }
    public void setRoomName(String roomName)
    {
        this.roomName = roomName;
    }

    public String getRoomName()
    {
        return roomName;
    }
    public void setSfContractId(Long sfContractId)
    {
        this.sfContractId = sfContractId;
    }

    public Long getSfContractId()
    {
        return sfContractId;
    }
    public void setSfContractNo(String sfContractNo)
    {
        this.sfContractNo = sfContractNo;
    }

    public String getSfContractNo()
    {
        return sfContractNo;
    }
    public void setHouseId(String houseId)
    {
        this.houseId = houseId;
    }

    public String getHouseId()
    {
        return houseId;
    }
    public void setHouseName(String houseName)
    {
        this.houseName = houseName;
    }

    public String getHouseName()
    {
        return houseName;
    }
    public void setPremiseName(String premiseName)
    {
        this.premiseName = premiseName;
    }

    public String getPremiseName()
    {
        return premiseName;
    }
    public void setPeopleNum(Long peopleNum)
    {
        this.peopleNum = peopleNum;
    }

    public Long getPeopleNum()
    {
        return peopleNum;
    }
    public void setTenantId(Long tenantId)
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId()
    {
        return tenantId;
    }
    public void setTenantName(String tenantName)
    {
        this.tenantName = tenantName;
    }

    public String getTenantName()
    {
        return tenantName;
    }
    public void setTenantPhone(String tenantPhone)
    {
        this.tenantPhone = tenantPhone;
    }

    public String getTenantPhone()
    {
        return tenantPhone;
    }
    public void setTenantEmergencyPhone(String tenantEmergencyPhone)
    {
        this.tenantEmergencyPhone = tenantEmergencyPhone;
    }

    public String getTenantEmergencyPhone()
    {
        return tenantEmergencyPhone;
    }
    public void setTenantCardNo(String tenantCardNo)
    {
        this.tenantCardNo = tenantCardNo;
    }

    public String getTenantCardNo()
    {
        return tenantCardNo;
    }
    public void setTenantContactAddress(String tenantContactAddress)
    {
        this.tenantContactAddress = tenantContactAddress;
    }

    public String getTenantContactAddress()
    {
        return tenantContactAddress;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setSigningCycle(Date signingCycle)
    {
        this.signingCycle = signingCycle;
    }

    public Date getSigningCycle()
    {
        return signingCycle;
    }
    public void setMonthRent(BigDecimal monthRent)
    {
        this.monthRent = monthRent;
    }

    public BigDecimal getMonthRent()
    {
        return monthRent;
    }
    public void setDeposit(BigDecimal deposit)
    {
        this.deposit = deposit;
    }

    public BigDecimal getDeposit()
    {
        return deposit;
    }
    public void setDepositType(Integer depositType)
    {
        this.depositType = depositType;
    }

    public Integer getDepositType()
    {
        return depositType;
    }
    public void setPaymentType(Integer paymentType)
    {
        this.paymentType = paymentType;
    }

    public Integer getPaymentType()
    {
        return paymentType;
    }
    public void setAdvanceDays(Long advanceDays)
    {
        this.advanceDays = advanceDays;
    }

    public Long getAdvanceDays()
    {
        return advanceDays;
    }
    public void setFixedDay(Long fixedDay)
    {
        this.fixedDay = fixedDay;
    }

    public Long getFixedDay()
    {
        return fixedDay;
    }
    public void setTenantExpenses(String tenantExpenses)
    {
        this.tenantExpenses = tenantExpenses;
    }

    public String getTenantExpenses()
    {
        return tenantExpenses;
    }
    public void setSignType(Integer signType)
    {
        this.signType = signType;
    }

    public Integer getSignType()
    {
        return signType;
    }
    public void setSupplementaryTerms(String supplementaryTerms)
    {
        this.supplementaryTerms = supplementaryTerms;
    }

    public String getSupplementaryTerms()
    {
        return supplementaryTerms;
    }
    public void setHaveSpecialPeople(Integer haveSpecialPeople)
    {
        this.haveSpecialPeople = haveSpecialPeople;
    }

    public Integer getHaveSpecialPeople()
    {
        return haveSpecialPeople;
    }
    public void setRentInstallmentFlg(Integer rentInstallmentFlg)
    {
        this.rentInstallmentFlg = rentInstallmentFlg;
    }

    public Integer getRentInstallmentFlg()
    {
        return rentInstallmentFlg;
    }
    public void setZyblFlg(Integer zyblFlg)
    {
        this.zyblFlg = zyblFlg;
    }

    public Integer getZyblFlg()
    {
        return zyblFlg;
    }
    public void setContractState(Integer contractState)
    {
        this.contractState = contractState;
    }

    public Integer getContractState()
    {
        return contractState;
    }
    public void setXuyueState(Integer xuyueState)
    {
        this.xuyueState = xuyueState;
    }

    public Integer getXuyueState()
    {
        return xuyueState;
    }
    public void setFreezeStatus(Integer freezeStatus)
    {
        this.freezeStatus = freezeStatus;
    }

    public Integer getFreezeStatus()
    {
        return freezeStatus;
    }
    public void setInputDate(Date inputDate)
    {
        this.inputDate = inputDate;
    }

    public Date getInputDate()
    {
        return inputDate;
    }
    public void setSigningDate(Date signingDate)
    {
        this.signingDate = signingDate;
    }

    public Date getSigningDate()
    {
        return signingDate;
    }
    public void setAuditDate(Date auditDate)
    {
        this.auditDate = auditDate;
    }

    public Date getAuditDate()
    {
        return auditDate;
    }
    public void setInputUserId(Long inputUserId)
    {
        this.inputUserId = inputUserId;
    }

    public Long getInputUserId()
    {
        return inputUserId;
    }
    public void setCfUserId(Long cfUserId)
    {
        this.cfUserId = cfUserId;
    }

    public Long getCfUserId()
    {
        return cfUserId;
    }
    public void setCfUserName(String cfUserName)
    {
        this.cfUserName = cfUserName;
    }

    public String getCfUserName()
    {
        return cfUserName;
    }
    public void setReserve1(BigDecimal reserve1)
    {
        this.reserve1 = reserve1;
    }

    public BigDecimal getReserve1()
    {
        return reserve1;
    }
    public void setReserve2(Long reserve2)
    {
        this.reserve2 = reserve2;
    }

    public Long getReserve2()
    {
        return reserve2;
    }
    public void setReserve3(String reserve3)
    {
        this.reserve3 = reserve3;
    }

    public String getReserve3()
    {
        return reserve3;
    }
    public void setReserve4(String reserve4)
    {
        this.reserve4 = reserve4;
    }

    public String getReserve4()
    {
        return reserve4;
    }
    public void setReserve5(String reserve5)
    {
        this.reserve5 = reserve5;
    }

    public String getReserve5()
    {
        return reserve5;
    }
    public void setDelFlg(Integer delFlg)
    {
        this.delFlg = delFlg;
    }

    public Integer getDelFlg()
    {
        return delFlg;
    }
    public void setCreateUserid(Long createUserid)
    {
        this.createUserid = createUserid;
    }

    public Long getCreateUserid()
    {
        return createUserid;
    }
    public void setUpdateUserid(Long updateUserid)
    {
        this.updateUserid = updateUserid;
    }

    public Long getUpdateUserid()
    {
        return updateUserid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("cfContractNo", getCfContractNo())
                .append("outContractNo", getOutContractNo())
                .append("lastContractId", getLastContractId())
                .append("lastContractNo", getLastContractNo())
                .append("businessId", getBusinessId())
                .append("deptId", getDeptId())
                .append("deptNo", getDeptNo())
                .append("roomId", getRoomId())
                .append("roomCode", getRoomCode())
                .append("roomName", getRoomName())
                .append("sfContractId", getSfContractId())
                .append("sfContractNo", getSfContractNo())
                .append("houseId", getHouseId())
                .append("houseName", getHouseName())
                .append("premiseName", getPremiseName())
                .append("peopleNum", getPeopleNum())
                .append("tenantId", getTenantId())
                .append("tenantName", getTenantName())
                .append("tenantPhone", getTenantPhone())
                .append("tenantEmergencyPhone", getTenantEmergencyPhone())
                .append("tenantCardNo", getTenantCardNo())
                .append("tenantContactAddress", getTenantContactAddress())
                .append("startDate", getStartDate())
                .append("endDate", getEndDate())
                .append("signingCycle", getSigningCycle())
                .append("monthRent", getMonthRent())
                .append("deposit", getDeposit())
                .append("depositType", getDepositType())
                .append("paymentType", getPaymentType())
                .append("advanceDays", getAdvanceDays())
                .append("fixedDay", getFixedDay())
                .append("tenantExpenses", getTenantExpenses())
                .append("signType", getSignType())
                .append("supplementaryTerms", getSupplementaryTerms())
                .append("haveSpecialPeople", getHaveSpecialPeople())
                .append("rentInstallmentFlg", getRentInstallmentFlg())
                .append("zyblFlg", getZyblFlg())
                .append("contractState", getContractState())
                .append("xuyueState", getXuyueState())
                .append("freezeStatus", getFreezeStatus())
                .append("inputDate", getInputDate())
                .append("signingDate", getSigningDate())
                .append("auditDate", getAuditDate())
                .append("inputUserId", getInputUserId())
                .append("cfUserId", getCfUserId())
                .append("cfUserName", getCfUserName())
                .append("reserve1", getReserve1())
                .append("reserve2", getReserve2())
                .append("reserve3", getReserve3())
                .append("reserve4", getReserve4())
                .append("reserve5", getReserve5())
                .append("delFlg", getDelFlg())
                .append("createUserid", getCreateUserid())
                .append("createTime", getCreateTime())
                .append("updateUserid", getUpdateUserid())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
